home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / PET / S-Super PET / (s)t4.d64 / QUICKSORT.BAS < prev    next >
BASIC Source File  |  2009-01-18  |  1KB  |  48 lines

  1.    10 input "enter number of item to be sorted ? ",x
  2.    20 dim integer(x)
  3.    30 for i=1 to x
  4.    40     integer(i)=int(rnd*1000)+1
  5.    50 next i
  6.    60 print mat integer;
  7.    70 rem
  8.    80 rem     sorting out the string in ascending order
  9.    90 rem
  10.   100 print"sort start"
  11.   110 start=time
  12.   120 call sort(1,x,1,x)
  13.   130 print"time = ";time-start;"  seconds"
  14.   140 print mat integer;
  15.   150 stop
  16.   160 
  17.   170 
  18.   180 proc sort(left,right,i,j)
  19.   190      i=left
  20.   200      j=right
  21.   210      if i < j
  22.   220         val=integer(i)
  23.   230         loop
  24.   240               while i < j and val < integer(j)
  25.   250                     j = j-1
  26.   260               endloop
  27.   270               integer(i) = integer(j)
  28.   280               i=i+1
  29.   290               while i < j and integer(i) < val
  30.   300                     i = i+1
  31.   310               endloop
  32.   320               integer(j) = integer(i)
  33.   330               if i>=j then quit
  34.   340               j=j-1
  35.   350         endloop
  36.   360         integer(j)=val
  37.   370         i=j-1
  38.   380         j=j+1
  39.   390         if right-j <= i-left
  40.   400            call sort(j,right,j,right)
  41.   410            call sort(left,i,left,i)
  42.   420         else
  43.   430            call sort(left,i,left,i)
  44.   440            call sort(j,right,j,right)
  45.   450         endif
  46.   460    endif
  47.   470 endproc
  48.